package com.njy.aop.test;

/**
 * 题意是有N个数字构成的序列，求最大递增子段和，即递增子序列和的最大值，
 * 思路就是定义dp[i]，表示以a[i]结尾的最大递增子段和，双重for循环，每次求出以a[i]结尾的最大递增子段和。
 */
public class SuperJumpingJumpingJumping {

    //3 1 3 2
    public int getMaxLISSum(int[] nums){
        int result = 0;
        int dp[] = new int[nums.length];
        for (int i = 0; i < nums.length ;i++){
            for (int j = 0 ;j < i;j++){
                if(nums[i] > nums[j]){
                    dp[i] = Math.max(dp[i],dp[j]+nums[i]);
                }
            }
            dp[i] = Math.max(dp[i], nums[i]);
        }
        for (int t : dp){
            result = Math.max(result,t);
        }
        return result;
    }

    public static void main(String[] args) {
        int[] nums = {3 ,1,3 ,2};
        System.out.println(new SuperJumpingJumpingJumping().getMaxLISSum(nums));
    }
}
